經過昨天iptables的介紹後,我們可以更了解iptables主要的功用以及其相關的知識。接著今天就來實際設定iptables的規則。
在先前我們已有設定各虛擬機的網路介面卡,因此現在為了使 第3臺 Kali 能夠連上外部網路,我們並須讓送過來的風包含傳出去的封包能夠被接,或正確轉送。我們可以做以下設定:
由於Kali 第1張為橋接器網路卡(eth0),第2張為NAT網路卡(eth1),因此我們需要讓所有從eth0網卡出去的封包都能夠被允許使得 第3臺虛擬機 Kali-2 的封包能夠正確向外傳輸,那該怎麼做呢?
我們可以當內部網路的主機通過 eth0 網路介面訪問外部網路時,將封包的源 IP 地址改為防火牆的外部網路介面的 IP 地址,從而允許內部網路的主機能夠通過防火牆訪問外部網路。這是一種常見的網路地址轉換(NAT)設定,用於實現私有網路的上網功能。
因此我們可以在Kali設定以下指令sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
這條指令是在設定 iptables 的規則,具體來說,它是在設定網路地址轉換(NAT)的規則。讓我們來詳細解釋一下這條指令的各個部分:
sudo
: 這個指令表示以系統管理員(root)的權限執行後面的命令。iptables
: 這是 Linux 系統的防火牆工具,用於設定網路封包過濾規則。-t nat
: 這個選項表示要操作的是 iptables 的 NAT 表。NAT 表主要用於處理網路地址轉換(NAT)的規則1。-A POSTROUTING
: 這個選項表示要在 POSTROUTING 鏈的末尾添加一條規則。POSTROUTING 鏈用於處理已經決定路由的封包,通常用於源地址轉換(SNAT)。-o eth0
: 這個選項表示只有當封包的出口(出站)網路介面是 eth0 時,這條規則才會被應用。-j MASQUERADE
: 這個選項表示當這條規則被觸發時,要執行的動作是 MASQUERADE。MASQUERADE 是一種特殊的源地址轉換(SNAT),它會將封包的源 IP 地址改為防火牆的外部網路介面的 IP 地址。這樣,對外部網路來說,所有從內部網路發出的封包都似乎是直接來自防火牆,從而隱藏了內部網路的真實 IP 地址。同理也要對 第2臺虛擬機 Mint 做相同的設定,由於Mint第1張網路介面卡為NAT網路(enp0s3),第2張為內部網路(enp0s8),因此可以使用以下指令sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
為了使傳送到或傳出自 第3臺 Kali-2 的封包能夠正確被轉發我們可以在Kali做以下指令設定
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
這條指令是在設定 iptables
的規則,具體來說,它是在設定數據包轉發的規則。讓我們來詳細解釋一下這條指令的各個部分:
-A FORWARD
: 這個選項表示要在 FORWARD
鏈的末尾添加一條規則。FORWARD
鏈用於處理需要通過防火牆發送給其他地址的數據包(轉發)¹。-i eth0 -o eth1
: 這兩個選項表示只有當封包的入口網路介面是 eth0
,並且出口網路介面是 eth1
時,這條規則才會被應用。-m state --state RELATED,ESTABLISHED
: 這個選項表示只有當封包的狀態是 RELATED
或 ESTABLISHED
時,這條規則才會被應用。RELATED
狀態表示封包與已經建立的連接有關,ESTABLISHED
狀態表示封包是已經建立的連接的一部分。-j ACCEPT
: 這個選項表示當這條規則被觸發時,要執行的動作是 ACCEPT
。ACCEPT
動作表示允許封包通過¹。總的來說,這條指令的作用是:當一個封包從 eth0
介面進入,並且需要從 eth1
介面轉發出去,且該封包與已經建立的連接有關或是已經建立的連接的一部分時,允許該封包通過。這是一種常見的防火牆設定,用於實現網路封包的轉發功能。
同理對Mint也做一樣的設定,可以使用以下指令。
sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
回到kali-2虛擬機重新輸入ping -c 4 www.google.com
,確認IP轉發成功